package com.enjoyor.soa.traffic.api.service.dubbo.bigdata;

import java.util.Date;

import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 流量预测
 */
public interface DubboFlowPredictionService {
	/**
     *  流量预测_一天区域趋势曲线_按小时
     * @param startDay
     * @param endDay
     * @param areaId
     * @return List<FFPAreaFlowPredictionDto>  时间（小时）,预测流量，预测出行车辆，预测净流入量
     */
    public ResultPojo areaFlowPredictionDay(String token, Date startDay, Date endDay, String areaId);

    /**
     * 流量预测_一天区域早高峰晚高峰_只有一天
     * @param startDay
     * @param endDay
     * @param areaId
     * @return FFPAreaMorAndEvePeakFlowDto 早高峰流量，晚高峰流量
     */
    public ResultPojo areaMorningAndEveningPeakDay(String token, Date startDay, Date endDay, String areaId);

    /**
     * 流量预测_一天道路趋势曲线_按小时
     * @param startDay
     * @param endDay
     * @param roadId
     * @return List<FFPRoadFlowPredictionDto> 时间（小时），预测流量
     */
    public ResultPojo roadFlowPredictionDay(String token, Date startDay, Date endDay, String roadId);

    /**
     * 流量预测_某路段一天早高峰晚高峰_只有一天
     * @param startDay
     * @param endDay
     * @param roadId
     * @return FFPRoadMorAndEvePeakFlowDto 预测早高峰流量，预测晚高峰流量
     */
    public ResultPojo roadMorningAndEveningPeakDay(String token, Date startDay, Date endDay, String roadId);

    /**
     *  区域  流量预测_一星期区域趋势曲线_按小时
     * @param startDay
     * @param endDay
     * @param areaId
     * @return  List<FFPAreaFlowPredictionDto> 时间（天）,预测流量，预测出行车辆，预测净流入量
     */
    public ResultPojo areaFlowPredictionWeek(String token, Date startDay, Date endDay, String areaId);

    /**
     * 流量预测_一星期区域早高峰晚高峰
     * @param startDay
     * @param endDay
     * @param areaId
     * @return List<FFPAreaMorAndEvePeakFlowDto> 时间（天），早高峰流量，晚高峰流量
     */
    public ResultPojo areaMorningAndEveningPeakWeek(String token, Date startDay, Date endDay, String areaId);

    /**
     * 流量预测_一星期道路趋势曲线_按小时
     * @param startDay
     * @param endDay
     * @param roadId
     * @return List<FFPRoadFlowPredictionDto> 时间（天），预测流量
     */
    public ResultPojo roadFlowPredictionWeek(String token, Date startDay, Date endDay, String roadId);

    /**
     * 流量预测_一星期早高峰晚高峰
     * @param startDay
     * @param endDay
     * @param roadId
     * @return List<FFPRoadMorAndEvePeakFlowDto> 时间（天），预测早高峰流量，预测晚高峰流量
     */
    public ResultPojo roadMorningAndEveningPeakWeek(String token, Date startDay, Date endDay, String roadId);

}
